package com.xiaoniu.douyinvideo.util

import android.content.ContentValues
import android.content.Context
import android.net.Uri
import android.provider.MediaStore
import java.io.FileInputStream
import java.io.IOException

/**
 * =====================================
 *
 * 作者: ZhaoHe
 * 创建日期: 2025/11/29 14:36
 * 描述: 文件工具类

 * 邮箱：zhao_zhaohe@163.com
 * =====================================
 */
object FileUtil {

    /**
     * 新增文件
     */
    fun createMediaFile(context: Context, fileName: String?): Uri {
        val contentValues = ContentValues()
        contentValues.put(MediaStore.Files.FileColumns.DISPLAY_NAME, fileName)
        contentValues.put(MediaStore.Video.VideoColumns.MIME_TYPE, "video/mp4")
        return context.contentResolver.insert(
            MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
            contentValues
        )!!
    }


    /**
     * 对文件进行写操作
     */
    fun writeToMediaFile(context: Context, path: String?, uri: Uri) {
        try {
            val assetFileDescriptor = context.contentResolver.openAssetFileDescriptor(uri, "rw")
            val os = assetFileDescriptor!!.createOutputStream()
            val `is` = FileInputStream(path)
            val data = ByteArray(8192)
            var len: Int
            while ((`is`.read(data, 0, 8192).also { len = it }) != -1) {
                os.write(data, 0, len)
            }
            os.close()
        } catch (e: IOException) {
            e.printStackTrace()
        }
    }
}